#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include "analyse_fichiers_events.h"

#include "personnel.h"
/*********************************************************************************************************************************************/
/*Fonction pour calculer nombre de ligne*/
/*********************************************************************************************************************************************/
int nbr_lignes ( char event[])
{
   FILE *f;
  
   f=fopen(event, "r");
   int nb_lignes = 0;
   char lg [100] ;
     if (f==NULL){printf ("erreur ouverture fichier lignes \n");return -1;}
	rewind(f);
      while(fgets(lg,100, f) != NULL)
    {
   
      nb_lignes++;
      
        } 
 
  fclose (f) ;
  return nb_lignes;
}
/*********************************************************************************************************************************************/
/*Fonction pour remplir le tableau du chaque medecin avec son chemin*/
/*********************************************************************************************************************************************/

int  remplissage ( char event[] ,int N,parcours tab [])
{  int i =1;
   int n ;
   int v, v2;
   char matricule [20];
   char capteur[100] ;
   char chaine [200] ;
   char  temps[10];
   FILE *f;


   f=fopen(event, "r");
	for(i=0;i<N;i++)
	{	
		strcpy(tab[i].ID," ");
	}
	fgets(chaine, 200, f) ;
	sscanf (chaine, "%s %s %s" , temps ,matricule , capteur );
	strcpy(tab[0].ID,matricule);
 	strcpy(tab[0].chemin,capteur); 
   n=1;
 while (fgets(chaine, 200, f) !=NULL) 
   {
    	sscanf (chaine, "%s %s %s" , temps ,matricule , capteur );

       v=0;


    i=0;
	while( (i<N) && (v==0) )
	{
		if( strcmp(tab[i].ID,matricule)==0 )
		{
			strcat(tab[i].chemin,capteur);v=1;
		}
		if( strcmp(tab[i].ID," ")==0 )
		{
			strcpy(tab[i].ID,matricule);
			strcpy(tab[i].chemin,capteur);
                        n++;
			v=1;
		}
                i++;

	}   
   }
	
fclose (f) ;
return(n);
}
   


/*********************************************************************************************************************************************/
/*Fonction pour afficher les alertes*/
/*********************************************************************************************************************************************/
void afficher_identificateur(char parcours_standard[],char fichier_personnel[])
{ 

FILE *f;
int n,N,i,j;
personnel p;
char event []="evenements.log";
N=nbr_lignes (event);
n=remplissage (event,N,tab);

       for (i=0;i<n;i++)
	{    for(j=0;j<strlen(parcours_standard)+1;j++)
	     {

            
 		if (parcours_standard[j]!=tab[i].chemin[j])

			{  printf("Alerte !! dans le capteur %c%c%c,l'id %s a fait un faux parcours:%s\n",tab[i].chemin[j],tab[i].chemin[j+1],tab[i].chemin[j+2],tab[i].ID,tab[i].chemin);
			  printf("                                               parcours standard:%s\n",parcours_standard);  
break;
			}               


            }

		f=fopen(fichier_personnel, "rb");

 		

 		if (f!=NULL)
		 {
	  
	  			while(fread(&p,sizeof(personnel),1,f)!=0)
 
            			 { 
	      				if (strcmp(tab[i].ID,p.matricule)==0)
		         		 {
					
					printf("Nom:%s\n Prenom:%s\n Matricule:%s\n Mail:%s\n CIN:%d\n Telephone:%d\n Statut: %s \n  Photo:%s \n ",p.nom,p.prenom,p.matricule,p.mail,p.cin,p.telephone,p.statut,p.photo);
					 }
				
	       			}
                 }
fclose(f);

               
      }
}


/*********************************************************************************************************************************************/
/*Fonction pour rechercher le chemin d'un medecin*/
/*********************************************************************************************************************************************/
void recherche_parcours()
{
int i,n,N;
char event []="evenements.log";
char iden[200];
N=nbr_lignes (event);
n=remplissage (event,N,tab);
do{
printf("donner l'id du medecin dont vous voulez afficher le parcours\n");
scanf("%s",iden);


   for (i=0;i<n;i++)
    {
       
       if(strcmp(iden,tab[i].ID)==0)
           {
                printf("le parcours qu'a fait l'id %s est :%s\n",tab[i].ID,tab[i].chemin); break;
            } 
   if(i=n-1)
            { printf("l'id que vous avez entre n'existe pas\n");}
    }
    

  }while(strcmp(iden,tab[i].ID)!=0);
}




   

